The present invention relates to methods and circuits for generating random numbers, and more particularly, methods and circuits for generating true random numbers in an Integrated Circuit (IC) with tamper detection.
Cryptographic applications often need a source of “true” random numbers, such as for generating keys, padding, or “seeding” messages and passwords. True random numbers, as opposed to computed pseudo-random numbers, are hard to generate, especially inside an IC. A true random number generator differs from a pseudo-random number generator in that the former is based on measuring inherently random, non-repeatable, natural artifacts, while the latter is a repeatable, mathematically computed number.
It is becoming more common to implement cryptographic applications in integrated circuits. When using cryptographic applications within an FPGA, random numbers can be generated inside or outside the integrated circuit. However, if random numbers are generated outside the integrated circuit, the cryptographic application is susceptible to attack by monitoring the integrated circuit interface.
Additionally, an integrated circuit using internal methods for generating random numbers is also susceptible to tampering if the method utilized is susceptible to changes in temperature, voltage supplies, or other environmental factors.
It is in this context that embodiments of the invention arise.